﻿<?xml version="1.0" encoding="utf-8"?>
<Dsl xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.0.0.0" Id="40066afb-6fec-44a6-a50d-bdb71d07dd89" Description="Description for 公司.FamilyTree.FamilyTree" Name="FamilyTree" DisplayName="FamilyTree" Namespace="公司.FamilyTree" ProductName="FamilyTree" CompanyName="公司" PackageGuid="e9d56d14-abb1-4d70-b0d7-074a15b61783" PackageNamespace="公司.FamilyTree" xmlns="http://schemas.microsoft.com/VisualStudio/2005/DslTools/DslDefinitionModel">
  <Classes>
    <DomainClass Id="88c5a3f7-2cf3-4b31-bf05-584ef187bd0f" Description="The root in which all other elements are embedded. Appears as a diagram." Name="FamilyTreeModel" DisplayName="Family Tree Model" Namespace="公司.FamilyTree">
      <ElementMergeDirectives>
        <ElementMergeDirective>
          <Notes>Creates an embedding link when an element is dropped onto a model. </Notes>
          <Index>
            <DomainClassMoniker Name="Person" />
          </Index>
          <LinkCreationPaths>
            <DomainPath>FamilyTreeModelHasPerson.Elements</DomainPath>
          </LinkCreationPaths>
        </ElementMergeDirective>
        <ElementMergeDirective>
          <Index>
            <DomainClassMoniker Name="Town" />
          </Index>
          <LinkCreationPaths>
            <DomainPath>FamilyTreeModelHasTown.Town</DomainPath>
          </LinkCreationPaths>
        </ElementMergeDirective>
      </ElementMergeDirectives>
    </DomainClass>
    <DomainClass Id="c9c7bad5-01df-4c5e-b9d3-791d231cb5b7" Description="Elements embedded in the model. Appear as boxes on the diagram." Name="Person" DisplayName="Person" Namespace="公司.FamilyTree">
      <Properties>
        <DomainProperty Id="6956b67c-179c-4534-9588-f3ca5f027b6e" Description="Description for 公司.FamilyTree.ExampleElement.Name" Name="Name" DisplayName="Name" DefaultValue="" IsElementName="true">
          <Type>
            <ExternalTypeMoniker Name="/System/String" />
          </Type>
        </DomainProperty>
        <DomainProperty Id="74d166fb-48b3-4cd8-86a1-e848ef569599" Description="公司.FamilyTree.Person.Birth Year 的说明" Name="BirthYear" DisplayName="Birth Year">
          <Type>
            <ExternalTypeMoniker Name="/System/Int32" />
          </Type>
        </DomainProperty>
        <DomainProperty Id="857f189d-a64d-4de4-91c9-9c473de04e6c" Description="公司.FamilyTree.Person.Death Year 的说明" Name="DeathYear" DisplayName="Death Year">
          <Type>
            <ExternalTypeMoniker Name="/System/Int32" />
          </Type>
        </DomainProperty>
      </Properties>
    </DomainClass>
    <DomainClass Id="5c0e387b-2b5c-4e79-bd80-7a097241720e" Description="公司.FamilyTree.Town 的说明" Name="Town" DisplayName="Town" Namespace="公司.FamilyTree">
      <Properties>
        <DomainProperty Id="d1a48bce-96a4-4c50-834b-737e1233f7ae" Description="公司.FamilyTree.Town.Name 的说明" Name="Name" DisplayName="Name">
          <Type>
            <ExternalTypeMoniker Name="/System/String" />
          </Type>
        </DomainProperty>
      </Properties>
    </DomainClass>
  </Classes>
  <Relationships>
    <DomainRelationship Id="ee4d554b-3a68-4e5e-a913-eb4d8eb4314c" Description="Embedding relationship between the Model and Elements" Name="FamilyTreeModelHasPerson" DisplayName="Family Tree Model Has Person" Namespace="公司.FamilyTree" IsEmbedding="true">
      <Source>
        <DomainRole Id="8ab5c275-4189-4081-bc86-30e419ba7e99" Description="" Name="FamilyTreeModel" DisplayName="Family Tree Model" PropertyName="Elements" PropagatesCopy="PropagatesCopyToLinkAndOppositeRolePlayer" PropertyDisplayName="Elements">
          <RolePlayer>
            <DomainClassMoniker Name="FamilyTreeModel" />
          </RolePlayer>
        </DomainRole>
      </Source>
      <Target>
        <DomainRole Id="e90fad80-b4de-4f00-b498-020e166c0bda" Description="" Name="Element" DisplayName="Element" PropertyName="FamilyTreeModel" Multiplicity="One" PropagatesDelete="true" PropertyDisplayName="Family Tree Model">
          <RolePlayer>
            <DomainClassMoniker Name="Person" />
          </RolePlayer>
        </DomainRole>
      </Target>
    </DomainRelationship>
    <DomainRelationship Id="63f42447-0c5b-4254-b862-aedb0430830b" Description="Reference relationship between Elements." Name="ParentsHaveChildren" DisplayName="Parents Have Children" Namespace="公司.FamilyTree">
      <Source>
        <DomainRole Id="f096f93c-0644-4e32-bb46-b2fb45f7e89a" Description="Description for 公司.FamilyTree.ExampleRelationship.Target" Name="Source" DisplayName="Source" PropertyName="Parents" PropertyDisplayName="Parents">
          <RolePlayer>
            <DomainClassMoniker Name="Person" />
          </RolePlayer>
        </DomainRole>
      </Source>
      <Target>
        <DomainRole Id="8c03bb16-157c-48ad-93cc-7373da9b3b0c" Description="Description for 公司.FamilyTree.ExampleRelationship.Source" Name="Target" DisplayName="Target" PropertyName="Children" PropertyDisplayName="Children">
          <RolePlayer>
            <DomainClassMoniker Name="Person" />
          </RolePlayer>
        </DomainRole>
      </Target>
    </DomainRelationship>
    <DomainRelationship Id="ce558d67-22cb-496e-b187-5bc21b50c3ba" Description="公司.FamilyTree.FamilyTreeModelHasTown 的说明" Name="FamilyTreeModelHasTown" DisplayName="Family Tree Model Has Town" Namespace="公司.FamilyTree" IsEmbedding="true">
      <Source>
        <DomainRole Id="9a3b2273-f0a1-46d6-8a22-b3b3e0e5d44c" Description="公司.FamilyTree.FamilyTreeModelHasTown.FamilyTreeModel 的说明" Name="FamilyTreeModel" DisplayName="Family Tree Model" PropertyName="Town" PropagatesCopy="PropagatesCopyToLinkAndOppositeRolePlayer" PropertyDisplayName="Town">
          <RolePlayer>
            <DomainClassMoniker Name="FamilyTreeModel" />
          </RolePlayer>
        </DomainRole>
      </Source>
      <Target>
        <DomainRole Id="3d28e493-cabe-406c-98ac-4ddb0dac8f9a" Description="公司.FamilyTree.FamilyTreeModelHasTown.Town 的说明" Name="Town" DisplayName="Town" PropertyName="FamilyTreeModel" Multiplicity="One" PropagatesDelete="true" PropertyDisplayName="Family Tree Model">
          <RolePlayer>
            <DomainClassMoniker Name="Town" />
          </RolePlayer>
        </DomainRole>
      </Target>
    </DomainRelationship>
    <DomainRelationship Id="22a53616-3c55-4b8b-8cdc-c1100ae8b5ac" Description="公司.FamilyTree.PersonReferenceTown 的说明" Name="PersonReferenceTown" DisplayName="Person Reference Town" Namespace="公司.FamilyTree">
      <Source>
        <DomainRole Id="fdf10cb5-d287-4ac0-8d79-d8871e4a6b9a" Description="公司.FamilyTree.PersonReferenceTown.Person 的说明" Name="Person" DisplayName="Person" PropertyName="Town" PropertyDisplayName="Town">
          <RolePlayer>
            <DomainClassMoniker Name="Person" />
          </RolePlayer>
        </DomainRole>
      </Source>
      <Target>
        <DomainRole Id="43c74fe0-1547-40d4-8f19-af67aea1a5b3" Description="公司.FamilyTree.PersonReferenceTown.Town 的说明" Name="Town" DisplayName="Town" PropertyName="Person" PropertyDisplayName="Person">
          <RolePlayer>
            <DomainClassMoniker Name="Town" />
          </RolePlayer>
        </DomainRole>
      </Target>
    </DomainRelationship>
  </Relationships>
  <Types>
    <ExternalType Name="DateTime" Namespace="System" />
    <ExternalType Name="String" Namespace="System" />
    <ExternalType Name="Int16" Namespace="System" />
    <ExternalType Name="Int32" Namespace="System" />
    <ExternalType Name="Int64" Namespace="System" />
    <ExternalType Name="UInt16" Namespace="System" />
    <ExternalType Name="UInt32" Namespace="System" />
    <ExternalType Name="UInt64" Namespace="System" />
    <ExternalType Name="SByte" Namespace="System" />
    <ExternalType Name="Byte" Namespace="System" />
    <ExternalType Name="Double" Namespace="System" />
    <ExternalType Name="Single" Namespace="System" />
    <ExternalType Name="Guid" Namespace="System" />
    <ExternalType Name="Boolean" Namespace="System" />
    <ExternalType Name="Char" Namespace="System" />
  </Types>
  <Shapes>
    <GeometryShape Id="d5887804-8fc5-4591-b76f-03582f6437b6" Description="Shape used to represent ExampleElements on a Diagram." Name="PersonShape" DisplayName="Person Shape" Namespace="公司.FamilyTree" FixedTooltipText="Person Shape" FillColor="242, 239, 229" OutlineColor="113, 111, 110" InitialWidth="2" InitialHeight="0.75" OutlineThickness="0.01" Geometry="Rectangle">
      <Notes>The shape has a text decorator used to display the Name property of the mapped ExampleElement.</Notes>
      <ShapeHasDecorators Position="Center" HorizontalOffset="0" VerticalOffset="0">
        <TextDecorator Name="NameDecorator" DisplayName="Name Decorator" DefaultText="NameDecorator" />
      </ShapeHasDecorators>
      <ShapeHasDecorators Position="InnerBottomLeft" HorizontalOffset="0" VerticalOffset="0">
        <TextDecorator Name="BirthYearDecorator" DisplayName="Birth Year Decorator" DefaultText="BirthYearDecorator" />
      </ShapeHasDecorators>
      <ShapeHasDecorators Position="InnerBottomRight" HorizontalOffset="0" VerticalOffset="0">
        <TextDecorator Name="DeathYearDecorator" DisplayName="Death Year Decorator" DefaultText="DeathYearDecorator" />
      </ShapeHasDecorators>
    </GeometryShape>
    <GeometryShape Id="4739c56f-03e5-4cc3-9b2f-291fce6df46f" Description="公司.FamilyTree.TownShape 的说明" Name="TownShape" DisplayName="Town Shape" Namespace="公司.FamilyTree" FixedTooltipText="Town Shape" FillColor="RosyBrown" InitialHeight="1" Geometry="Ellipse">
      <ShapeHasDecorators Position="InnerTopCenter" HorizontalOffset="0" VerticalOffset="0">
        <TextDecorator Name="NameDecorator" DisplayName="Name Decorator" DefaultText="NameDecorator" />
      </ShapeHasDecorators>
    </GeometryShape>
  </Shapes>
  <Connectors>
    <Connector Id="dfa3a3ad-d244-4eb0-aec5-178ae332a87d" Description="Connector between the ExampleShapes. Represents ExampleRelationships on the Diagram." Name="ParentConnector" DisplayName="Parent Connector" Namespace="公司.FamilyTree" FixedTooltipText="Parent Connector" Color="113, 111, 110" TargetEndStyle="EmptyArrow" Thickness="0.01" />
    <Connector Id="639ef087-1b06-4854-b4ff-fb1b7b681c96" Description="公司.FamilyTree.ResidenceConnector 的说明" Name="ResidenceConnector" DisplayName="Residence Connector" Namespace="公司.FamilyTree" FixedTooltipText="Residence Connector" />
  </Connectors>
  <XmlSerializationBehavior Name="FamilyTreeSerializationBehavior" Namespace="公司.FamilyTree">
    <ClassData>
      <XmlClassData TypeName="FamilyTreeModel" MonikerAttributeName="" SerializeId="true" MonikerElementName="familyTreeModelMoniker" ElementName="familyTreeModel" MonikerTypeName="FamilyTreeModelMoniker">
        <DomainClassMoniker Name="FamilyTreeModel" />
        <ElementData>
          <XmlRelationshipData RoleElementName="elements">
            <DomainRelationshipMoniker Name="FamilyTreeModelHasPerson" />
          </XmlRelationshipData>
          <XmlRelationshipData UseFullForm="true" RoleElementName="town">
            <DomainRelationshipMoniker Name="FamilyTreeModelHasTown" />
          </XmlRelationshipData>
        </ElementData>
      </XmlClassData>
      <XmlClassData TypeName="Person" MonikerAttributeName="name" SerializeId="true" MonikerElementName="personMoniker" ElementName="person" MonikerTypeName="PersonMoniker">
        <DomainClassMoniker Name="Person" />
        <ElementData>
          <XmlPropertyData XmlName="name" IsMonikerKey="true">
            <DomainPropertyMoniker Name="Person/Name" />
          </XmlPropertyData>
          <XmlRelationshipData RoleElementName="parents">
            <DomainRelationshipMoniker Name="ParentsHaveChildren" />
          </XmlRelationshipData>
          <XmlPropertyData XmlName="birthYear">
            <DomainPropertyMoniker Name="Person/BirthYear" />
          </XmlPropertyData>
          <XmlPropertyData XmlName="deathYear">
            <DomainPropertyMoniker Name="Person/DeathYear" />
          </XmlPropertyData>
          <XmlRelationshipData UseFullForm="true" RoleElementName="town">
            <DomainRelationshipMoniker Name="PersonReferenceTown" />
          </XmlRelationshipData>
        </ElementData>
      </XmlClassData>
      <XmlClassData TypeName="FamilyTreeModelHasPerson" MonikerAttributeName="" SerializeId="true" MonikerElementName="familyTreeModelHasPersonMoniker" ElementName="familyTreeModelHasPerson" MonikerTypeName="FamilyTreeModelHasPersonMoniker">
        <DomainRelationshipMoniker Name="FamilyTreeModelHasPerson" />
      </XmlClassData>
      <XmlClassData TypeName="ParentsHaveChildren" MonikerAttributeName="" SerializeId="true" MonikerElementName="parentsHaveChildrenMoniker" ElementName="parentsHaveChildren" MonikerTypeName="ParentsHaveChildrenMoniker">
        <DomainRelationshipMoniker Name="ParentsHaveChildren" />
      </XmlClassData>
      <XmlClassData TypeName="PersonShape" MonikerAttributeName="" SerializeId="true" MonikerElementName="personShapeMoniker" ElementName="personShape" MonikerTypeName="PersonShapeMoniker">
        <GeometryShapeMoniker Name="PersonShape" />
      </XmlClassData>
      <XmlClassData TypeName="ParentConnector" MonikerAttributeName="" SerializeId="true" MonikerElementName="parentConnectorMoniker" ElementName="parentConnector" MonikerTypeName="ParentConnectorMoniker">
        <ConnectorMoniker Name="ParentConnector" />
      </XmlClassData>
      <XmlClassData TypeName="FamilyTreeDiagram" MonikerAttributeName="" SerializeId="true" MonikerElementName="familyTreeDiagramMoniker" ElementName="familyTreeDiagram" MonikerTypeName="FamilyTreeDiagramMoniker">
        <DiagramMoniker Name="FamilyTreeDiagram" />
      </XmlClassData>
      <XmlClassData TypeName="FamilyTreeModelHasTown" MonikerAttributeName="" SerializeId="true" MonikerElementName="familyTreeModelHasTownMoniker" ElementName="familyTreeModelHasTown" MonikerTypeName="FamilyTreeModelHasTownMoniker">
        <DomainRelationshipMoniker Name="FamilyTreeModelHasTown" />
      </XmlClassData>
      <XmlClassData TypeName="Town" MonikerAttributeName="" SerializeId="true" MonikerElementName="townMoniker" ElementName="town" MonikerTypeName="TownMoniker">
        <DomainClassMoniker Name="Town" />
        <ElementData>
          <XmlPropertyData XmlName="name">
            <DomainPropertyMoniker Name="Town/Name" />
          </XmlPropertyData>
        </ElementData>
      </XmlClassData>
      <XmlClassData TypeName="PersonReferenceTown" MonikerAttributeName="" SerializeId="true" MonikerElementName="personReferenceTownMoniker" ElementName="personReferenceTown" MonikerTypeName="PersonReferenceTownMoniker">
        <DomainRelationshipMoniker Name="PersonReferenceTown" />
      </XmlClassData>
      <XmlClassData TypeName="TownShape" MonikerAttributeName="" SerializeId="true" MonikerElementName="townShapeMoniker" ElementName="townShape" MonikerTypeName="TownShapeMoniker">
        <GeometryShapeMoniker Name="TownShape" />
      </XmlClassData>
      <XmlClassData TypeName="ResidenceConnector" MonikerAttributeName="" SerializeId="true" MonikerElementName="residenceConnectorMoniker" ElementName="residenceConnector" MonikerTypeName="ResidenceConnectorMoniker">
        <ConnectorMoniker Name="ResidenceConnector" />
      </XmlClassData>
    </ClassData>
  </XmlSerializationBehavior>
  <ExplorerBehavior Name="FamilyTreeExplorer" />
  <ConnectionBuilders>
    <ConnectionBuilder Name="ParentsHaveChildrenBuilder">
      <Notes>Provides for the creation of an ExampleRelationship by pointing at two ExampleElements.</Notes>
      <LinkConnectDirective>
        <DomainRelationshipMoniker Name="ParentsHaveChildren" />
        <SourceDirectives>
          <RolePlayerConnectDirective>
            <AcceptingClass>
              <DomainClassMoniker Name="Person" />
            </AcceptingClass>
          </RolePlayerConnectDirective>
        </SourceDirectives>
        <TargetDirectives>
          <RolePlayerConnectDirective>
            <AcceptingClass>
              <DomainClassMoniker Name="Person" />
            </AcceptingClass>
          </RolePlayerConnectDirective>
        </TargetDirectives>
      </LinkConnectDirective>
    </ConnectionBuilder>
    <ConnectionBuilder Name="PersonReferenceTownBuilder">
      <LinkConnectDirective>
        <DomainRelationshipMoniker Name="PersonReferenceTown" />
        <SourceDirectives>
          <RolePlayerConnectDirective>
            <AcceptingClass>
              <DomainClassMoniker Name="Person" />
            </AcceptingClass>
          </RolePlayerConnectDirective>
        </SourceDirectives>
        <TargetDirectives>
          <RolePlayerConnectDirective>
            <AcceptingClass>
              <DomainClassMoniker Name="Town" />
            </AcceptingClass>
          </RolePlayerConnectDirective>
        </TargetDirectives>
      </LinkConnectDirective>
    </ConnectionBuilder>
  </ConnectionBuilders>
  <Diagram Id="3d62cb2d-b09d-42b1-a809-7f94f77f19a0" Description="Description for 公司.FamilyTree.FamilyTreeDiagram" Name="FamilyTreeDiagram" DisplayName="Minimal Language Diagram" Namespace="公司.FamilyTree">
    <Class>
      <DomainClassMoniker Name="FamilyTreeModel" />
    </Class>
    <ShapeMaps>
      <ShapeMap>
        <DomainClassMoniker Name="Person" />
        <ParentElementPath>
          <DomainPath>FamilyTreeModelHasPerson.FamilyTreeModel/!FamilyTreeModel</DomainPath>
        </ParentElementPath>
        <DecoratorMap>
          <TextDecoratorMoniker Name="PersonShape/NameDecorator" />
          <PropertyDisplayed>
            <PropertyPath>
              <DomainPropertyMoniker Name="Person/Name" />
            </PropertyPath>
          </PropertyDisplayed>
        </DecoratorMap>
        <DecoratorMap>
          <TextDecoratorMoniker Name="PersonShape/BirthYearDecorator" />
          <PropertyDisplayed>
            <PropertyPath>
              <DomainPropertyMoniker Name="Person/BirthYear" />
            </PropertyPath>
          </PropertyDisplayed>
        </DecoratorMap>
        <DecoratorMap>
          <TextDecoratorMoniker Name="PersonShape/DeathYearDecorator" />
          <PropertyDisplayed>
            <PropertyPath>
              <DomainPropertyMoniker Name="Person/DeathYear" />
            </PropertyPath>
          </PropertyDisplayed>
        </DecoratorMap>
        <GeometryShapeMoniker Name="PersonShape" />
      </ShapeMap>
      <ShapeMap>
        <DomainClassMoniker Name="Town" />
        <ParentElementPath>
          <DomainPath>FamilyTreeModelHasTown.FamilyTreeModel/!FamilyTreeModel</DomainPath>
        </ParentElementPath>
        <DecoratorMap>
          <TextDecoratorMoniker Name="TownShape/NameDecorator" />
          <PropertyDisplayed>
            <PropertyPath>
              <DomainPropertyMoniker Name="Town/Name" />
            </PropertyPath>
          </PropertyDisplayed>
        </DecoratorMap>
        <GeometryShapeMoniker Name="TownShape" />
      </ShapeMap>
    </ShapeMaps>
    <ConnectorMaps>
      <ConnectorMap>
        <ConnectorMoniker Name="ParentConnector" />
        <DomainRelationshipMoniker Name="ParentsHaveChildren" />
      </ConnectorMap>
      <ConnectorMap>
        <ConnectorMoniker Name="ResidenceConnector" />
        <DomainRelationshipMoniker Name="PersonReferenceTown" />
      </ConnectorMap>
    </ConnectorMaps>
  </Diagram>
  <Designer CopyPasteGeneration="CopyPasteOnly" FileExtension="FamilyTree" EditorGuid="ea4f879d-2460-4500-9dcc-b76701944007">
    <RootClass>
      <DomainClassMoniker Name="FamilyTreeModel" />
    </RootClass>
    <XmlSerializationDefinition CustomPostLoad="false">
      <XmlSerializationBehaviorMoniker Name="FamilyTreeSerializationBehavior" />
    </XmlSerializationDefinition>
    <ToolboxTab TabText="FamilyTree">
      <ElementTool Name="Person" ToolboxIcon="resources\exampleshapetoolbitmap.bmp" Caption="Person" Tooltip="Create an ExampleElement" HelpKeyword="CreateExampleClassF1Keyword">
        <DomainClassMoniker Name="Person" />
      </ElementTool>
      <ConnectionTool Name="ParentLink" ToolboxIcon="resources\exampleconnectortoolbitmap.bmp" Caption="输入父联接" Tooltip="Drag between ExampleElements to create an ExampleRelationship" HelpKeyword="ConnectExampleRelationF1Keyword">
        <ConnectionBuilderMoniker Name="FamilyTree/ParentsHaveChildrenBuilder" />
      </ConnectionTool>
      <ElementTool Name="Town" ToolboxIcon="Resources\ExampleShapeToolBitmap.bmp" Caption="Town" Tooltip="Town" HelpKeyword="Town">
        <DomainClassMoniker Name="Town" />
      </ElementTool>
      <ConnectionTool Name="TownPersonConnection" ToolboxIcon="Resources\ExampleConnectorToolBitmap.bmp" Caption="TownPersonConnection" Tooltip="Town Person Connection" HelpKeyword="TownPersonConnection">
        <ConnectionBuilderMoniker Name="FamilyTree/PersonReferenceTownBuilder" />
      </ConnectionTool>
    </ToolboxTab>
    <Validation UsesMenu="false" UsesOpen="false" UsesSave="false" UsesLoad="false" />
    <DiagramMoniker Name="FamilyTreeDiagram" />
  </Designer>
  <Explorer ExplorerGuid="bc2d7f30-f9d8-45ca-88c6-38a3c4190620" Title="FamilyTree Explorer">
    <ExplorerBehaviorMoniker Name="FamilyTree/FamilyTreeExplorer" />
  </Explorer>
</Dsl>